package br.com.diego.system.controller.cadastropermissao;

import br.com.diego.system.controller.cadastrocomponente.ComponenteVo;
import br.com.diego.system.controller.cadastrousuario.UsuarioVo;
import br.com.diego.system.entity.permissao.Permissao;
import java.util.ArrayList;
import java.util.List;
import javax.faces.model.SelectItem;

public class PermissaoVo {
    
    private Long id = null;
    
    private Integer version = null;
    
    private UsuarioVo usuarioVo = new UsuarioVo();
    
    private ComponenteVo componenteVo = new ComponenteVo(); 
    
    private TipoVo tipoVo;
    
    private List<SelectItem> tipoList = new ArrayList<SelectItem>();
    
    public PermissaoVo(Permissao permissao) {
        this();
        setId(permissao.getId());
        setVersion(permissao.getVersion());
        setUsuarioVo(new UsuarioVo(permissao.getUsuario()));
        setComponenteVo(new ComponenteVo(permissao.getComponente()));
        setTipoVo(TipoVo.valueOf(permissao.getTipo().name()));        
    }
    
    public PermissaoVo() {    
        for (TipoVo tipoVo : TipoVo.values()) {
            SelectItem selectItem = new SelectItem(tipoVo, tipoVo.getDescricao());
            tipoList.add(selectItem);
        }
    }

    public ComponenteVo getComponenteVo() {
        return componenteVo;
    }

    public void setComponenteVo(ComponenteVo componenteVo) {
        this.componenteVo = componenteVo;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public List<SelectItem> getTipoList() {
        return tipoList;
    }

    public void setTipoList(List<SelectItem> tipoList) {
        this.tipoList = tipoList;
    }

    public TipoVo getTipoVo() {
        return tipoVo;
    }

    public void setTipoVo(TipoVo tipoVo) {
        this.tipoVo = tipoVo;
    }

    public UsuarioVo getUsuarioVo() {
        return usuarioVo;
    }

    public void setUsuarioVo(UsuarioVo usuarioVo) {
        this.usuarioVo = usuarioVo;
    }

    public Integer getVersion() {
        return version;
    }

    public void setVersion(Integer version) {
        this.version = version;
    }
    
}
